package cn.zj.admin.apis;

import cn.zj.admin.bean.MenuInfo;
import com.zj.utils.FileUtil;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.File;
import java.nio.file.Paths;

/**
 * @author xi.yang
 * @create 2020-10-23 12:27
 **/
@RestController
public class IndexApi {
    @GetMapping("init")
    public String init() {
        File file = null;
        try {
            file = ResourceUtils.getFile("classpath:init.json");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return FileUtil.readFile(file.getPath());
//        try {
//            File file = ResourceUtils.getFile("classpath:menu-demo.menu");
//            if (file.isDirectory()) {
//                for (File listFile : file.listFiles()) {
//                    if (listFile.getName().endsWith("menu-demo.menu")) {
//                        List<String> lines = Files.readAllLines(listFile.toPath());
//                        List<MenuInfo> menuInfos = new ArrayList<>();
//                        MenuInfo menuInfo;
//                        int level = 0;
//                        for (String line : lines) {
//                            // 注释行
//                            if (line.startsWith("#")) {
//                                continue;
//                            }
//                            // 菜单行
//                            if (line.startsWith("-")) {
//                                menuInfo = getMenuInfo(line);
//                                menuInfos.add(menuInfo);
//                                continue;
//                            }
//                            // 功能描述行
//                            if (line.startsWith("*")) {
//
//                            }
//                        }
//                        adminInfo.setMenuInfo(menuInfos);
//                    }
//                }
//            } else {
//                List<String> lines = Files.readAllLines(file.toPath());
//                List<MenuInfo> menuInfos = new ArrayList<>();
//                MenuInfo menuInfo = MenuInfo.builder().build();
//                int level = 0;
//                for (String line : lines) {
//                    // 注释行
//                    if (line.startsWith("#")) {
//                        continue;
//                    }
//                    // 菜单行
//                    if (line.startsWith("-")) {
//                        MenuInfo tmp = getMenuInfo(line);
//                        if (1 == tmp.getLevel()) {
//                            menuInfos.add(tmp);
//                            menuInfo = tmp;
//                            continue;
//                        }
//                        if (level == tmp.getLevel()) {
//                            menuInfo.getChild().add(tmp);
//                            continue;
//                        }
//                    }
//                    // 功能描述行
//                    if (line.startsWith("*")) {
//
//                    }
//                }
//                adminInfo.setMenuInfo(menuInfos);
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
    }

    /**
     * 解析菜单对象
     * @param line
     * @return
     */
    private MenuInfo getMenuInfo(String line) {
        String[] tags = line.split(" ");
        MenuInfo result = MenuInfo.builder()
                .level(tags[0].length())
                .tag(tags[1])
                .title(tags[2])
                .icon("fa " + tags[3])
                .build();
        return result;
    }
}
